Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Выборка из одной таблицы с формированием результатов на основе её содержимого (Drinkins)
Author Message
Drinkins
Guest





Карма: 388
   поощрить/наказать


PostPosted: Tue Aug 15, 2006 3:04 pm (написано за 5 минут 4 секунды)
   Post subject: Выборка из одной таблицы с формированием результатов на основе её содержимого
Reply with quote

Структура таблицы такая

id_key | id_properties | value_properties | id_element
______|____________|______________|___________
1__________1__________значение_1__________1
2__________2__________значение_2__________1
3__________3__________значение_3__________1
4__________1__________значение_1__________2
5__________2__________значение_2__________2
6__________1__________значение_11_________3
7__________2__________значение_2__________3
8__________3__________значение_3__________3

Подскажите или хотябы намекните, как можно сделать такой запрос, чтобы он вернул те значения `id_element`
для которых выполняеться условие:

при `id_properties`==1 `value_properties` должно быть равно "значение_1"
И(одновременно для этого же id_element)
при `id_properties`==2 `value_properties` должно быть "равно значение_2"

т.е. найти те значения `id_element` у которых в таблице есть в столбце id_properties значения 1 и 2, и для
значения 1 поле `value_properties` имеет значение "значение_1", а для
значения 2 поле `value_properties` имеет значение "значение_2"

Если сделать запрос
Code (SQL): скопировать код в буфер обмена
SELECT * FROM test WHERE (id_properties = '1' && value_union = 'значение_1') && (id_properties = '2' && value_union = 'значение_2')
то он не работает(да по идее и не должен срабатывать правильно, т.к. mysql читает данные по строчкам и если id_properties='1', то это поле уже никак не может быть равно '2')
Т.е. надо как-то проверить таблицу так, чтобы mysql вначале проверил значение id_properties и потом уже(для каждого id_properties) начал проверять value_properties
Back to top
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9986
   поощрить/наказать


PostPosted: Tue Aug 15, 2006 3:21 pm (спустя 17 минут; написано за 2 минуты 3 секунды)
   Post subject:
Reply with quote

Drinkins wrote:
хотябы намекните
Намекаю:
dev.mysql.com/doc/refman/4.1/en/control-flow-functions.html

Но, по-хорошему, так не делается.
Опишите решаемую задачу (если, конечно, это реальное приложение, а не «вопрос из викторины»...).
Back to top
View user's profile Send private message
Drinkins
Guest





Карма: 388
   поощрить/наказать


PostPosted: Tue Aug 15, 2006 3:37 pm (спустя 15 минут; написано за 7 минут 56 секунд)
   Post subject:
Reply with quote

Эта таблица являеться промежуточной и соединяет две таблицы:
1)Хранит в себе элементы
2)Хранит в себе свойства
Т.е. при добавлении нового элемента, для него указываються свойства. Эти связи(элемент-значение_свойства) сохраняються в этой таблице. value_properties - это то значение конкретного свойства для конкретного элемента. Мне нужно организовать фильтр для элементов по значениям этого поля. Причём, если фильтр происхдит по нескольким свойствам(вес и цвет), то в результат должны входить только те элементы, у которых эти свойства совпадают со значениями, указанными в фильтре.

До этого написал запрос, но он работал по ИЛИ(т.е. если в фильтре в свойствах указать вес=120 цвет=красный, то запрос выдавал все элементы у которых значения свойства вес=120 ИЛИ свойства цвет=красный(причём может быть вес и не быть цвет, и наоборот может быть цвет и не быть вес), а мне надо чтобы было вес=120 И свойства цвет=красный)
Back to top
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML